package com.hh.core.shiro.service;

import java.util.List;

import org.apache.shiro.authc.SimpleAuthenticationInfo;

import com.hh.admin.entity.SysUser;
import com.hh.core.shiro.entity.ShiroUser;

/**
 * 
* @ClassName: IShiroService  
* @Description: TODO(shiro 业务层 定义所需接口)  
* @author hxn
* @date 2018年1月17日 上午10:19:25  
*
 */
public interface IShiroService {

	/**
	 * 
	* @Title: user  
	* @Description:   根据账号获取登录用户
	* @param @param account
	* @param @return    设定文件  
	* @return SysUser    返回类型  
	* @author hxn
	* @date 2018年1月17日 上午10:21:03  
	* @throws
	 */
	SysUser getSysUser(String account);

	/**
	 * 
	* @Title: shiroUser  
	* @Description:   根据系统用户获取Shiro的用户
	* @param @param user
	* @param @return    设定文件  
	* @return ShiroUser    返回类型  
	* @author hxn
	* @date 2018年1月17日 上午10:21:12  
	* @throws
	 */
    ShiroUser getShiroUser(SysUser user);

    /**
     * 
    * @Title: findPermissionsByRoleId  
    * @Description:   获取权限列表通过角色id
    * @param @param roleId
    * @param @return    设定文件  
    * @return List<String>    返回类型  
    * @author hxn
    * @date 2018年1月17日 上午10:21:20  
    * @throws
     */
    List<String> findPermissionsByRoleId(Long roleId);

    /**
     * 
    * @Title: findRoleNameByRoleId  
    * @Description:   根据角色id获取角色名称
    * @param @param roleId
    * @param @return    设定文件  
    * @return String    返回类型  
    * @author hxn
    * @date 2018年1月17日 上午10:21:28  
    * @throws
     */
    String findRoleNameByRoleId(Long roleId);

    /**
     * 
    * @Title: info  
    * @Description:   获取shiro的认证信息
    * @param @param shiroUser
    * @param @param user
    * @param @param realmName
    * @param @return    设定文件  
    * @return SimpleAuthenticationInfo    返回类型  
    * @author hxn
    * @date 2018年1月17日 上午10:21:35  
    * @throws
     */
    SimpleAuthenticationInfo getAuthenticationInfo(ShiroUser shiroUser, SysUser user, String realmName);
}
